package com.awaken.content.service;

// 导入商品DTO类
import com.awaken.content.models.dto.ProductDTO;
// 导入商品请求类
import com.awaken.content.models.request.ProductRequest;
// 导入列表类
import java.util.List;

/**
 * 商品服务接口 - 定义商品相关的业务操作
 * 这个接口定义了所有与商品相关的业务方法
 * 具体的实现逻辑在ProductServiceImpl类中
 */
public interface ProductService {
    
    /**
     * 创建商品
     * @param request 商品创建请求，包含商品的所有信息
     * @return 创建成功的商品信息
     */
    ProductDTO createProduct(ProductRequest request);
    
    /**
     * 根据ID获取商品信息
     * @param id 商品ID
     * @return 商品信息，如果商品不存在返回null
     */
    ProductDTO getProductById(Long id);
    
    /**
     * 获取所有商品列表
     * @return 所有商品的列表
     */
    List<ProductDTO> getAllProducts();
    
    /**
     * 根据分类获取商品列表
     * @param categoryId 分类ID
     * @return 该分类下的所有商品
     */
    List<ProductDTO> getProductsByCategory(Long categoryId);
    
    /**
     * 更新商品库存
     * @param productId 商品ID
     * @param amount 要减少的库存数量
     * @return 更新成功返回true，失败返回false
     */
    boolean updateStock(Long productId, Integer amount);
} 